It calculates three euler angles
rot2eul(X)
A rotation matrix which is defined as a product of three elementary rotations mentioned above.
Here
For a given rotation matrix, there are two eqivalent sets of euler angles.
Given a rotation matrix X, euler angles are computed by equating each element in X with the corresponding element in the matrix product defined above. This results in nine equations that can be used to find the euler angles.
Green, P. J. \& Mardia, K. V. (2006). Bayesian alignment using hierarchical models, with applications in proteins bioinformatics. Biometrika, 93(2):235--254.
http://www.staff.city.ac.uk/~sbbh653/publications/euler.pdf
# NOT RUN {
# three euler angles
theta.12 <- sample( seq(-3, 3, 0.3), 1 )
theta.23 <- sample( seq(-3, 3, 0.3), 1 )
theta.13 <- sample( seq(-1.4, 1.4, 0.3), 1 )
theta.12 ; theta.23 ; theta.13
X <- eul2rot(theta.12, theta.23, theta.13)
X ## A rotation matrix
e <- rot2eul(X)$v1
theta.12 <- e[3]
theta.23 <- e[2]
theta.13 <- e[1]
theta.12 ; theta.23 ; theta.13
# }
Run the code above in your browser using DataLab